home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- Smaller Installer © 1996 Bill Goodman, All Rights Reserved
- *******************************************************************************
-
- This header defines the Installer Hook Procedure interface.
-
- ******************************************************************************/
-
-
- /******************************************************************************
- Installer Hook Parameter Block Definition
- ******************************************************************************/
- typedef struct
- {
- short function; // Function to perform:
- #define siHookFirst 1 // First call
- #define siHookLast 2 // Last call
- #define siHookChangeSelection 3 // Change selection
- #define siHookBeginOperation 4 // Begin operation
- #define siHookBeforeItem 5 // Before item
- #define siHookAfterItem 6 // After item
- #define siHookEndOperation 7 // End operation
-
- short targetVRefNum; // Volume reference number of target volume
-
- unsigned short groupAPFlags; // Group A-P flags (MSB->P...LSB->A)
- Byte groupQUSel; // Group Q-U selector (0->Q...4->U)
- Byte groupVZSel; // Group V-Z selector (0->V...4->Z)
- unsigned long group32Flags; // Group 01-32 flags (MSB->32...LSB->01)
- unsigned long group64Flags; // Group 33-64 flags (MSB->64...LSB->33)
- unsigned long group96Flags; // Group 65-96 flags (MSB->96...LSB->65)
- unsigned long groupEnvironFlags; // Group environment flags
- #define siHookEnvBlackAndWhite 0x00000001 // %B: Black & White (monochrome)
- #define siHookEnvColor 0x00000002 // %C: Color
- #define siHookEnvSystem6OrLower 0x00000004 // %6: System 6 or older
- #define siHookEnvSystem7OrHigher 0x00000008 // %7: System 7 or newer
- #define siHookEnv68KProcessor 0x00000010 // %M: 680X0 processor
- #define siHookEnvPPCProcessor 0x00000020 // %P: PowerPC processor
- #define siHookEnv68KWithFPU 0x00000040 // %F: 680X0 processor with FPU
- #define siHookEnv68KWithoutFPU 0x00000080 // %G: 680X0 processor without FPU
- #define siHookEnvInstallFat 0x00000100 // %U: Install universal version of fat binaries
- #define siHookEnvInstall68KOnly 0x00000200 // %N: Install 680X0-only version of fat binaries
- #define siHookEnvInstallPPCOnly 0x00000400 // %Q: Install PowerPC-only version of fat binaries
-
- StringPtr passwordPtr; // Pointer to password string
-
- long filesRemaining; // Number of files remaining to install/remove
- long bytesRemaining; // Number of bytes of data remaining to install/remove
-
- Boolean doingRemove; // Non-zero if doing remove operation
- Boolean anyItemsSkipped; // Non-zero if any item has been skipped during operation
- Boolean itemWasSkipped; // Non-zero if this item was skipped
- Boolean aborted; // Non-zero if operation was aborted
-
- short desVRefNum; // Volume reference number of destination volume
- long desDirID; // Directory ID of destination directory
- Str63 itemName; // Name of file or folder to install/remove
- Boolean itemIsFolder; // Non-zero if item is a folder
- Boolean filler1; // Filler byte
- OSType fileType; // File type (not valid for folders)
- OSType fileCreator; // File creator (not valid for folders)
- unsigned long createDate; // Creation date (not valid for folders)
- unsigned long lastModDate; // Last modification date (not valid for folders)
- long rsrcForkLen; // Length of resource fork (not valid for folders)
- long dataForkLen; // Length of data fork (not valid for folders)
- long itemInfo; // Reference passed from BeforeItem call to AfterItem call
-
- short result; // Returned result
- #define siHookNoErr 0 // No error
- #define siHookQuit 1 // Stop current operation and terminate installer
- #define siHookAbort 2 // Stop current operation and resume installer
- #define siHookSkip 3 // Skip this item
- #define siHookItemDone 4 // Item was installed/removed by hook
- } SIHookParmBlk;
-
-
- /******************************************************************************
- Hook Procedure Definition
- ******************************************************************************/
- typedef pascal void (*SIHookProcPtr)(SIHookParmBlk *parmBlk);